package ScalaStudy.chapter06

import javafx.concurrent.Worker

object Test04_Access {
  def main(args: Array[String]): Unit = {


  /////////////////////////////////////////////////////////////////////////////////////////
  //////////////////////////////////////    封装  /// /////////////////////////////////////
  /////////////////////////////////////////////////////////////////////////////////////////


    // --- 这是外部

    val person: Person = new Person()
//    person.idCard                                             //私有属性没办法访问   --error
//    person.name                                               //被保护的对象，只有在子类中访问   --error
    println(person.age)                                         //age是包访问权限，本文件在chapter06包下，可以访问
    println(person.sex)                                         //公共权限，可以访问

    person.printInfo                                            //调用Persion中的方法，而不是被子类覆写的方法


    //定义一个子类
    class Worker extends Person{
      override def printInfo(): Unit = {                       //在子类中重写父类的方法
//        println(idCard)                                      //子类不能访问父类中的私有对象
        name = "WangQiang"
        age  = 25
        sex  = "male"

        println(s"person: ${name} ${sex} ${age}")

      }
    }

    val worker: Worker = new Worker()                       //在类的下方引用，代码从上到下运行
    worker.printInfo()                                      //调用子类中的覆写父类之后的方法



  }
}